using FluentNHibernate.Mapping;

namespace Neturion.Dados
{
    public class MapProtocoloProcedimento : ClassMap<ProtocoloProcedimento>
    {
        public MapProtocoloProcedimento()
        {
            Table("protocolosprocedimentos");
            Id(x => x.AssuntoProcedimentoId, "ProtocoloProcedimentoId");
            Map(x => x.EnumSituacaoTramiteDependencia).CustomType(typeof(EnumSituacaoTramite));
            Map(x => x.FlagGerencial);
            Map(x => x.DataConclusao);
            Map(x => x.DataVencimento);
            Map(x => x.PrazoResolucao);
            References(x => x.Assunto, "Assunto_id").Not.LazyLoad();
            References(x => x.Procedimento, "Procedimento_id").Not.LazyLoad();
            References(x => x.Setor, "Setor_id").Not.LazyLoad();
            References(x => x.FuncionarioExecutante, "FuncionarioExecutante_id").Not.LazyLoad();
            References(x => x.AssuntoProcedimentoDependente, "AssuntoProcedimentoDependente_id").Not.LazyLoad();
            References(x => x.Protocolo, "Protocolo_id").Not.LazyLoad();
            HasMany<ProcedimentoSituacaoTramite>(x => x.ListaProcedimentoSituacaoTramite)
                .Not.LazyLoad().Cascade.AllDeleteOrphan();
        }
    }
}